/**
 * Copyright (c) subnew ;
 * email:joseanluo@gmail.com;
 * Licensed under the GPL;  
 * @Title: RandomCodeBean.java;
 * @Package com.subnew.framework.core.enumconstant;
 */
package com.subnew.mango.frame.constant;

import java.util.Random;

/**
 * 生成随机验证码的枚举。
 * @author JoseanLuo
 * @date  2014-7-16 下午11:38:03
 * @history new 
 * @version V1.0 
 */
public enum RandomCodeEnum {
	/**
	 * 混合字符串
	 */
	ALL_CHAR("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"),
	/**
	 * 字符
	 */
	LETTER_CHAR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"),
	/**
	 * 小写字母
	 */
	LOWER_CHAR("abcdefghijklmnopqrstuvwxyz"),
	/**
	 * 数字
	 */
	NUMBER_CHAR("0123456789"),
	/**
	 * 大写字符
	 */
	UPPER_CHAR("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	/**
	 * 待生成的验证码。
	 */
	private String codes;
	RandomCodeEnum(final String codes){
		this.codes=codes;
	}
	/**
	* 随机生成指定长度的验证码。
	* @param codeLength 验证码的长度
	* @return   生成的验证码。
	* @author JoseanLuo  
	* @date 2014-7-16 下午11:47:20
	* @version V1.0
	 */
	public String genarateCode(final int codeLength){
		final StringBuffer sb= new StringBuffer();
		final Random random= new Random();
		final String sourseStr =getCodes();
		  for(int i=0;i<codeLength;i++){
			  sb.append(sourseStr.charAt(random.nextInt(sourseStr.length())));
		  }
		return sb.toString();
	}
	/**
	*取得验证码的值。
	* @return   
	* @author JoseanLuo  
	* @date 2014-7-16 下午11:44:53
	* @version V1.0
	 */
	public String getCodes(){
		return this.codes;
	}

}
